草庐IT

leetcode 413. Arithmetic Slices 等差数列划分

全部标签

LeetCode | 704.二分查找

704.二分查找关于二分查找最重要的就是分类讨论好二分,二分看着好写边界case还是需要测试的哈什么是区间不变量?比如区间取左闭右闭的话那么每次区间二分范围都是新区间的左闭右闭后面做判断时要一直基于这个左闭右闭的区间其实区间定义成开或者闭都没有什么关系只是要明确每次收缩范围后范围内的元素是哪些注意会不会漏掉边界就好大家需要注意二分的几种情况当l=0,r=n的时候因为r这个值我们在数组中无法取到,while(l当l=0,r=n-1的时候因为r这个值我们在数组中可以取到,while(l二分法有多种写法,末尾是开区间闭区间都可以解出寻找单个元素和寻找边界的题目,只需要注意相应的是l其实二分还有很多应

按软件开发阶段的角度划分:单元测试、集成测试、系统测试、验收测试

1.单元测试(UnitTesting)单元测试,又称模块测试。对软件的组成单位进行测试,其目的是检验软件基本组成单位的正确性。测试的对象是软件里测试的最小单位:模块。测试阶段:编码后或者编码前(TDD:测试驱动开发)测试对象:最小模块测试人员:白盒测试工程师或开发人员测试依据:代码和注释+详细文档测试方法:白盒测试测试内容:模块接口测试、局部数据结构测试、独立执行路径测试、错误处理路径测试、边界条件测试补充说明:(1)学习测试依据时,我们可以对比软件测试的“V”模型结合记忆(2)白盒测试不是单元测试,单元测试是白盒测试(3)测试驱动开发(TDD):测试人员先编写测试用例,开发人员根据测试用例写

LeetCode 算法分类列表

💡LeetCode高频面试题分类列表,总共24类,312道题目!图133.克隆图207.课程表210.课程表II399.除法求值547.省份数量684.冗余连接743.网络延迟时间785.判断二分图堆215.数组中的第K个最大元素295.数据流的中位数264.丑数II347.前K个高频元素378.有序矩阵中第K小的元素703.数据流中的第K大元素767.重构字符串剑指Offer41.数据流中的中位数栈20.有效的括号71.简化路径84.柱状图中最大的矩形85.最大矩形155.最小栈224.基本计算器227.基本计算器II394.字符串解码402.移掉K位数字503.下一个更大元素II739.每

【LeetCode: 12. 整数转罗马数字 + 模拟 + 有序表】

🚀算法题🚀🌲算法刷题专栏|面试必备算法|面试高频算法🍀🌲越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨🌲作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎🌲恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻🌲人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯🚀算法题🚀🍔目录🚩题目链接⛲题目描述🌟求解思路&实现代码&运行结果⚡模拟+有序表🥦求解思路🥦实现代码🥦运行结果💬共勉🚩题目链接12.整数转罗马数字⛲题目描述罗马数字包含以下七种字符:I,V,X,L,C,D和

c++ - 在不复制的情况下划分 std::string

是否可以在不复制的情况下将std::string分成两个或更多子字符串,就像我们可以使用移动构造函数创建一个新的std::string不复制? 最佳答案 你不能用std::string来做到这一点。但是,您可以使用C++17中的std::string_view来做到这一点。例子:std::stringstr="TheBigStr";std::string_viewp1=std::string_view(str.data()+3,3);字符串View不复制数据,因此在使用View时不应修改str。

【leetcode】移除元素

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️目录一.暴力求解法二.使用额外数组三.原地修改数组点击查看题目一.暴力求解法若我们不考虑时间复杂度,第一想到的方法应该都是暴力求解法吧:遍历数组,如果数组元素=val,用后面的元素将之覆盖。比较简单也不符合题意,就不写代码了二.使用额外数组第二种方法不符合题意,但由于能启发第三种方法,所以简单介绍一下先创建一个元素个数大于或等于nums数组的数组tmp,src和dst分别是数组nums和tmp的下标,初始化都=0,当nums[src]不等于val时,将之拷贝到tmp数组中,拷贝的位置为tmp[dst]

算法沉淀——模拟(leetcode真题剖析)

算法沉淀——模拟01.替换所有的问号02.提莫攻击03.Z字形变换04.外观数列05.数青蛙模拟算法是一种通过模拟问题的描述或场景来解决问题的算法。这种算法的核心思想是按照问题描述的规则,逐步模拟问题的发展过程,从而得到问题的解决方案。通常,模拟算法涉及到对问题的具体步骤进行逐一模拟,而不依赖于数学公式或高级的数据结构。在模拟算法中,通常需要考虑到问题的初始状态、模拟的步骤、状态的变化规律以及终止条件。这种算法的实现可以使用编程语言来逐一执行模拟的步骤,通常需要一些控制结构、循环和条件语句来进行模拟。虽然模拟算法可能在某些情况下效率较低,但它们通常具有直观、清晰、易于理解的特点,适用于一些实际

算法沉淀——链表(leetcode真题剖析)

算法沉淀——链表01.两数相加02.两两交换链表中的节点03.重排链表04.合并K个升序链表05.K个一组翻转链表链表常用技巧1、画图->直观形象、便于理解2、引入虚拟"头节点"3、要学会定义辅助节点(比如双向链表的节点插入)4、快慢双指针(判断链表是否有环、找到环的入口、找链表中倒数第n个节点等)链表常用操作1、创建新节点2、头插(比如逆序链表)3、尾插01.两数相加题目链接:https://leetcode.cn/problems/add-two-numbers/给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并

leetcode链表相关题目

文章目录1.移除链表元素方法1:方法22.合并两个有序链表3.链表的中间节点方法1方法24.反转单链表方法1方法25.分割链表6.链表中的倒数第k个节点方法1:方法2:7.环形链表的约瑟夫问题8.链表的回文结构9.相交链表方法1方法2:10.环形链表11.环形链表Ⅱ12.随机链表的复制链表学习完以后,来做点相关题目吧1.移除链表元素方法1:在原链表的基础上直接删除指定元素若当前节点是要删除的节点,则将其前驱节点指向当前节点的下一个节点若当前节点不是要删除的节点,前驱节点指向当前节点,当前节点后移特殊情况:循环判断,若头节点是要删除的节点,则将头节点后移头节点不为空structListNode*

算法学习|Day15-二叉树|Leetcode102二叉树的层序遍历,Leetcode226翻转二叉树,Leetcode101对称二叉树

目录一、Leetcode102二叉树的层序遍历题目描述解题思路方法:长度法总结二、Leetcode226翻转二叉树题目描述解题思路方法一:递归方法二:层序遍历总结三、Leetcode101对称二叉树题目描述解题思路方法:递归总结一、Leetcode102二叉树的层序遍历题目描述给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。输入:root=[3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]输入:root=[1]输出:[[1]]输入:root=[]输出:[]题目链接:力扣题目链接解题思路层序遍历使用队列控制每层的数量